<?php
declare(strict_types=1);

namespace Zms\Res;

class Res
{
    /**
     * @describe 成功返回
     * @user zlf <zms-pro@qq.com> 2025/5/9
     * @param string $msg
     * @param $data
     * @return Result
     */
    public static function success(string $msg, $data = null): Result
    {
        return new Result(
            true,
            $msg,
            $data
        );
    }

    /**
     * @describe 成功数据返回
     * @user zlf <zms-pro@qq.com> 2025/5/9
     * @param string $msg
     * @param $data
     * @return Result
     */
    public static function successData($data = null): Result
    {
        return new Result(
            true,
            'success',
            $data
        );
    }


    /**
     * @describe 成功消息返回
     * @user zlf <zms-pro@qq.com> 2025/5/9
     * @param string $msg
     * @return Result
     */
    public static function successMsg(string $msg = 'success'): Result
    {
        return new Result(
            true,
            $msg
        );
    }

    /**
     * @describe 失败返回
     * @user zlf <zms-pro@qq.com> 2025/5/9
     * @param string $msg
     * @param $data
     * @return Result
     */
    public static function error(string $msg, $data = null): Result
    {
        return new Result(
            false,
            $msg,
            $data
        );
    }

    /**
     * @describe 失败数据返回
     * @user zlf <zms-pro@qq.com> 2025/5/9
     * @param string $msg
     * @param $data
     * @return Result
     */
    public static function errorData($data = null): Result
    {
        return new Result(
            false,
            'error',
            $data
        );
    }


    /**
     * @describe 失败消息返回
     * @user zlf <zms-pro@qq.com> 2025/5/9
     * @param string $msg
     * @return Result
     */
    public static function errorMsg(string $msg = 'error'): Result
    {
        return new Result(
            false,
            $msg
        );
    }
}